// package com.zmn.oms.business.impl.comment;
//
// import com.google.common.collect.Lists;
// import com.zmn.common.utils.pager.Pages;
// import com.zmn.oms.business.impl.base.AbstractListEsQueryServiceImpl;
// import com.zmn.oms.business.interfaces.comment.OrderCommentListBService;
// import com.zmn.oms.model.entity.comment.OrderCommentEsQuery;
// import com.zmn.oms.services.interfaces.comment.EsOrderCommentService;
// import org.elasticsearch.search.sort.*;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
// import org.springframework.stereotype.Service;
//
// import java.util.List;
// import java.util.Map;
// import java.util.Objects;
// import java.util.Optional;
//
// /**
//  * 类描述：订单评价列表查询
//  * @author  lujia
//  * @date   2019-04-22 19:29:14
//  */
// @Service
// public class OrderCommentListBServiceImpl extends AbstractListEsQueryServiceImpl implements OrderCommentListBService {
//
//     @Autowired
//     EsOrderCommentService orderCommentService;
//
//     // 排序字段
//     private static final String SORT_LEVEL_TWO = "commentContentLength";
//     private static final String SORT_LEVEL_THREE = "commentTime";
//
//     @Override
//     public List<EsOrderWorkComment> listPageOrderCommentByQuery(OrderCommentEsQuery query) {
//         NativeSearchQuery tempQuery = super.builderSearchQuery(query);
//         if (tempQuery == null) {
//             query.setTotalCount(0);
//             return Lists.newArrayList();
//         }
//
//         // 构建排序
//         List<SortBuilder> sorts = Lists.newArrayList();
//         SortOrder order = Objects.equals(Pages.DEFAULT_ORDER_YES, query.getDefaultOrder()) ? SortOrder.DESC : SortOrder.ASC;
//         FieldSortBuilder sortBuilder = SortBuilders.fieldSort(Optional.ofNullable(query.getOrderField()).orElse("commentScore")).order(order);
//         sorts.add(sortBuilder);
//
//         // 二级排序规则，字数多的优先展示
//         // FieldSortBuilder contentLengthSortBuilder = SortBuilders.fieldSort(SORT_LEVEL_TWO).order(SortOrder.DESC);
//         // sorts.add(contentLengthSortBuilder);
//
//         // 三级排序规则，评价时间
//         if (!Objects.equals(SORT_LEVEL_THREE, query.getOrderField())) {
//             FieldSortBuilder contentTimeSortBuilder = SortBuilders.fieldSort(SORT_LEVEL_THREE).order(SortOrder.DESC);
//             sorts.add(contentTimeSortBuilder);
//         }
//
//         NativeSearchQuery searchQuery = new NativeSearchQuery(tempQuery.getQuery(), tempQuery.getFilter(), sorts);
//         searchQuery.setPageable(tempQuery.getPageable());
//         Page<EsOrderWorkComment> search = orderCommentService.search(searchQuery);
//         int total = Integer.parseInt(String.valueOf(search.getTotalElements()));
//         query.setTotalCount(total);
//         return search.getContent();
//     }
// }
